1. Field of the Invention
This invention relates to a multi-event queuing mechanism and more particularly to such a mechanism for off-loading many operating system functions that would otherwise be executed by one or more central processors in a large data processing system.
2. Description of the Prior Art
Multi-processing systems and a single processing system adapted for multi-programming require operating systems for the purpose of scheduling tasks on a particular processor, initiating input/output data transfers, handling external interrupts, and the like. Such operating systems, sometimes called a master control program (MCP), actually consist of many different particular processes and subroutines, each of which has a particular function. Such particular process and subroutine resides in main memory and currently must be executed by the particular central processors when a processor or another central processor in a multi-processisng system requires service, such as when it has finished a particular process or task, requires an input/output operation or some other service.
More specifically, among other things, the operating systems allocate and deallocate events where an event may represent an external interrupt, I/O operation, etc.; implement a set of functions which may be performed upon these events; maintain the status of processes or tasks running on the system; perform task priority computations and schedule the execution of tasks by various central processors; maintain the system timers, including the interval timers; and perform some accounting and billing functions.
Statistical studies indicate that a major portion of each processor's time, in a multi-processing system, is employed in executing operating system functions. From these studies, it is estimated that the overhead of such management functions has been anywhere between ten percent and fifty percent, and occasionally even higher. Furthermore, a goodly portion of the time that the corresponding central processor is executing operating system functions is employed in establishing process priority, performing functions on events (as defined above) and initiating input/output operations. If even these latter functions could be removed from the operating systems, then the through-put of the data processing system should be substantially enhanced.
At times, the operating system is required to continually process on a set of events, any one of which may happen and require processing from time to time. In order to do this, the operating system must wait on all events within this set simultaneously. When one of the multiple events has occurred, the operating system processes that event and must again wait on all of the events. If additional events happen during the time which the operating system is processing the first event, when the operating system again waits on the events it has no way of telling which of the events occurred first in time.
The mechanism of the present invention also maintains a multi-event table which contains the state of allocated multi-event entries as well as a list of unallocated entries in the table. The mechanism of the present invention signals the "receiving" (or waiting) process when an event associated with the particular table entry has happened so that the particular central processor assigned to execute the particular process may then process as appropriate for the particular event. The mechanism of the present invention also maintains a queue of such happened events associated with the particular table entry such that if the rate at which incoming happened events exceeds the rate of processing, the events are queued up in the order in which they happened. This queue is maintained whether or not a process is currently receiving on the particular multi-event entry. In addition, the processor of the present invention maintains certain event states which are associated with the multi-event table functions, such as which particular multi-event entry a particular event is associated with, whether the event is happened, and whether or not the processor of the present invention should maintain a count of the number of times this event occurs such that it may be processed multiple times even if the operating system cannot process the event as fast as it can occur.
It is then the object of the present invention to provide a data processing system having improved throughput.
It is another object of the present invention to provide an improved data processing system wherein those operating system functions which require most of the central processor time are removed from the main memory of the system.
It is still a further object of the present invention to provide an improved data processing system having facilities for performing those functions that would otherwise be a part of the operating systems stored in memory.